package com.ssy.lingxi.after.sale.model.vo.request;

import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * 换货货物保存VO
 * @author 伍将
 * @date 2020/9/11
 * @version 2.0.0
 */
public class ReplaceGoodsDetailSaveVO implements Serializable {
    private static final long serialVersionUID = 5054214511459566291L;

    /**
     * 订单记录id
     */
    @NotNull(message = "订单记录id不能为空")
    private Long orderRecordId;

    /**
     * 订单号
     */
    @NotBlank(message = "订单号不能为空")
    private String orderNo;
    /**
     * 订单id
     */
    @NotNull(message = "订单id不能为空")
    private Long orderId;

    /**
     * 商品id
     */
    @NotBlank(message = "商品Id不能空")
    private String productId;
    /**
     * 商品skuId
     */
    private Long skuId;
    /**
     * 商城id
     */
    private Long shopId;

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称")
    private String productName;

    /**
     * 品类
     */
    @NotBlank(message = "品类")
    private String category;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 单位
     */
    private String unit;
    /**
     * sku图片
     */
    private String skuPic;

    /**
     * 换货数量
     */
    @NotNull(message = "换货数量要大于0")
    @Positive(message = "换货数量要大于0")
    private Double replaceCount;

    /**
     * 采购单价
     */
    @NotNull(message = "采购单价要大于等于0")
    @PositiveOrZero(message = "采购单价要大于等于0")
    private Double purchasePrice;

    /**
     * 采购数量
     */
    @NotNull(message = "采购数量要大于0")
    @Positive(message = "采购数量要大于0")
    private Double purchaseCount;

    /**
     * 采购金额
     */
    @NotNull(message = "采购金额要大于等于0")
    @PositiveOrZero(message = "采购金额要大于等于0")
    private Double purchaseAmount;

    /**
     * 换货原因
     */
    @Size(max = 60, message = "换货原因不能超过60个字符")
    private String replaceReason;

    /**
     * 是否需要退货：否-0，是-1
     */
    @NotNull(message = "是否需要退货不能为空")
    private Integer isNeedReturn = 1;

    /**
     * 是否含税：0-否，1-是
     */
    @NotNull(message = "是否含税不能为空")
    @PositiveOrZero(message = "是否含税不能为空")
    private Integer isHasTax;

    /**
     * 税率
     */
    @NotNull(message = "税率不能为空")
    @PositiveOrZero(message = "税率不能为空")
    private Double taxRate;

    /**
     * 合同id
     */
    private Long contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 商品规格
     */
    private String type;

    /**
     * 关联商品ID
     */
    private String associatedProductId;

    /**
     * 关联商品名称、规格
     */
    private String associatedProductName;

    /**
     * 关联商品规格
     */
    private String associatedType;

    /**
     * 关联商品品类
     */
    private String associatedCategory;

    /**
     * 关联商品品牌
     */
    private String associatedBrand;

    /**
     * 关联商品单位
     */
    private String associatedUnit;

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public Integer getIsHasTax() {
        return isHasTax;
    }

    public void setIsHasTax(Integer isHasTax) {
        this.isHasTax = isHasTax;
    }

    public Double getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(Double taxRate) {
        this.taxRate = taxRate;
    }

    public Integer getIsNeedReturn() {
        return isNeedReturn;
    }

    public void setIsNeedReturn(Integer isNeedReturn) {
        this.isNeedReturn = isNeedReturn;
    }

    public Double getPurchaseAmount() {
        return purchaseAmount;
    }

    public void setPurchaseAmount(Double purchaseAmount) {
        this.purchaseAmount = purchaseAmount;
    }

    public Long getOrderRecordId() {
        return orderRecordId;
    }

    public void setOrderRecordId(Long orderRecordId) {
        this.orderRecordId = orderRecordId;
    }

    public String getProductName() {
        return productName;
    }

    public Double getPurchasePrice() {
        return purchasePrice;
    }

    public void setPurchasePrice(Double purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public Double getPurchaseCount() {
        return purchaseCount;
    }

    public void setPurchaseCount(Double purchaseCount) {
        this.purchaseCount = purchaseCount;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getSkuPic() {
        return skuPic;
    }

    public void setSkuPic(String skuPic) {
        this.skuPic = skuPic;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Double getReplaceCount() {
        return replaceCount;
    }

    public void setReplaceCount(Double replaceCount) {
        this.replaceCount = replaceCount;
    }

    public String getReplaceReason() {
        return replaceReason;
    }

    public void setReplaceReason(String replaceReason) {
        this.replaceReason = replaceReason;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getAssociatedProductId() {
        return associatedProductId;
    }

    public void setAssociatedProductId(String associatedProductId) {
        this.associatedProductId = associatedProductId;
    }

    public String getAssociatedProductName() {
        return associatedProductName;
    }

    public void setAssociatedProductName(String associatedProductName) {
        this.associatedProductName = associatedProductName;
    }

    public String getAssociatedType() {
        return associatedType;
    }

    public void setAssociatedType(String associatedType) {
        this.associatedType = associatedType;
    }

    public String getAssociatedCategory() {
        return associatedCategory;
    }

    public void setAssociatedCategory(String associatedCategory) {
        this.associatedCategory = associatedCategory;
    }

    public String getAssociatedBrand() {
        return associatedBrand;
    }

    public void setAssociatedBrand(String associatedBrand) {
        this.associatedBrand = associatedBrand;
    }

    public String getAssociatedUnit() {
        return associatedUnit;
    }

    public void setAssociatedUnit(String associatedUnit) {
        this.associatedUnit = associatedUnit;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
}
